<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
<dictionary title="Sophos Anti-Virus Terminology">
	<suite name="Standard Suite" code="????" description="Common classes and commands for all applications.">
		<class name="application" code="capp" description="The application&apos;s top-level scripting object.">
			<cocoa class="NSApplication"/>
			<element type="scan">
				<cocoa key="scans"/>
			</element>
			<property name="name" code="pnam" description="The name of the application." type="text" access="r"/>
			<property name="quarantine manager" code="SQMa" description="The quarantine manager component of the product." type="Quarantine Manager Controller">
				<cocoa key="quarantineManagerScriptController"/>
			</property>
			<property name="frontmost" code="pisf" description="Is this the active application?" type="boolean" access="r">
				<cocoa key="isActive"/>
			</property>
			<property name="version" code="vers" description="The version number of the application." type="text" access="r"/>
			<responds-to command="quit" name="quit">
				<cocoa method="handleQuitScriptCommand:"/>
			</responds-to>
		</class>
		<command name="count" code="corecnte" description="Return the number of elements of a particular class within an object.">
			<cocoa class="NSCountCommand"/>
			<direct-parameter description="The objects to be counted." type="specifier"/>
			<parameter hidden="yes" name="each" code="kocl" description="The class of objects to be counted." type="type" optional="yes">
				<cocoa key="ObjectClass"/>
			</parameter>
			<result description="The count." type="integer"/>
		</command>
		<command name="delete" code="coredelo" description="Delete an object.">
			<cocoa class="NSDeleteCommand"/>
			<direct-parameter description="The object(s) to delete." type="specifier"/>
		</command>
		<command name="duplicate" code="coreclon" description="Copy an object.">
			<cocoa class="NSCloneCommand"/>
			<direct-parameter description="The object(s) to copy." type="specifier"/>
			<parameter name="to" code="insh" description="The location for the new copy or copies." type="location specifier" optional="yes">
				<cocoa key="ToLocation"/>
			</parameter>
			<parameter name="with properties" code="prdt" description="Properties to set in the new copy or copies right away." type="record" optional="yes">
				<cocoa key="WithProperties"/>
			</parameter>
			<result description="the duplicated object(s)">
				<type type="specifier"/>
				<type type="specifier" list="yes"/>
			</result>
		</command>
		<command name="exists" code="coredoex" description="Verify that an object exists.">
			<cocoa class="NSExistsCommand"/>
			<direct-parameter description="The object(s) to check." type="any"/>
			<result description="Did the object(s) exist?" type="boolean"/>
		</command>
		<command name="make" code="corecrel" description="Create a new object.">
			<cocoa class="NSCreateCommand"/>
			<parameter name="new" code="kocl" description="The class of the new object." type="type">
				<cocoa key="ObjectClass"/>
			</parameter>
			<parameter name="at" code="insh" description="The location at which to insert the object." type="location specifier" optional="yes">
				<cocoa key="Location"/>
			</parameter>
			<parameter name="with data" code="data" description="The initial contents of the object." type="any" optional="yes">
				<cocoa key="ObjectData"/>
			</parameter>
			<parameter name="with properties" code="prdt" description="The initial values for properties of the object." type="record" optional="yes">
				<cocoa key="KeyDictionary"/>
			</parameter>
			<result description="The new object." type="specifier"/>
		</command>
		<command name="move" code="coremove" description="Move an object to a new location.">
			<cocoa class="NSMoveCommand"/>
			<direct-parameter description="The object(s) to move." type="specifier"/>
			<parameter name="to" code="insh" description="The new location for the object(s)." type="location specifier">
				<cocoa key="ToLocation"/>
			</parameter>
		</command>
	</suite>
	<suite name="Sophos Anti-Virus Scripting" code="SAVx" description="Commands and classes for Sophos Anti-Virus Scripting">
		<enumeration name="On-access initial threat response" code="Oact">
			<enumerator name="deny access" code="OnDN" description="Deny access to the infected file.">
				<cocoa string-value="SUMInitialResponseOnAccessDenyAccess"/>
			</enumerator>
			<enumerator name="clean up the threat" code="OnCL" description="Clean up infected files.">
				<cocoa string-value="SUMInitialResponseOnAccessCleanupThreat"/>
			</enumerator>
			<enumerator name="move the infected file" code="OnMV" description="Move the infected file to the infected folder.">
				<cocoa string-value="SUMInitialResponseOnAccessMoveThreat"/>
			</enumerator>
			<enumerator name="delete the infected file" code="OnDE" description="Delete the infected file.">
				<cocoa string-value="SUMInitialResponseOnAccessDeleteThreat"/>
			</enumerator>
		</enumeration>
		<enumeration name="On-access cleanup failure response" code="OACF">
			<enumerator name="deny access to infected files" code="OCDN" description="Deny access to the infected file, and report the cleanup failure.">
				<cocoa string-value="SUMCleanupFailureResponseOnAccessDenyAccess"/>
			</enumerator>
			<enumerator name="delete any remaining infected files" code="OCDE" description="Delete the infected file.">
				<cocoa string-value="SUMCleanupFailureResponseOnAccessDeleteThreat"/>
			</enumerator>
			<enumerator name="move any remaining infected files" code="OCMV" description="Move the infected file to the infected folder.">
				<cocoa string-value="SUMCleanupFailureResponseOnAccessMoveThreat"/>
			</enumerator>
		</enumeration>
		<enumeration name="file action" code="iact">
			<enumerator name="move infected files" code="imov" description="Move the infected files to the scan&apos;s infected folder.">
				<cocoa string-value="SUMScanScriptActionMove"/>
			</enumerator>
			<enumerator name="delete infected files" code="idel" description="Delete the infected files.">
				<cocoa string-value="SUMScanScriptActionDelete"/>
			</enumerator>
			<enumerator name="no action" code="inon" description="Do nothing.">
				<cocoa string-value="SUMScanScriptActionNone"/>
			</enumerator>
		</enumeration>
		<record-type name="scan status" code="stat">
			<property name="threats" code="thrt" description="The number of threats that have been detected." type="integer">
				<cocoa key="SUMStatusThreats"/>
			</property>
			<property name="errors" code="errs" description="The number of errors that have been encountered." type="integer">
				<cocoa key="SUMStatusErrors"/>
			</property>
			<property name="files remaining" code="frem" description="The number of files yet to be scanned." type="integer">
				<cocoa key="SUMStatusFilesRemaining"/>
			</property>
		</record-type>
		<!-- This is a nice way to extend the base 'capp' object. Unfortunately, while SDEF in 10.4 supports the syntax, Cocoa Scripting in
		     the AppKit can't grok it. So we leave it for now, and use NSScriptCommand classes instead.
		<class-extension description="Sophos Anti-Virus" extends="application">
			<cocoa class="NSApplication" />
			<responds-to command="display about panel">
				<cocoa method="handleDisplayAboutPanelScriptCommand:" />
			</responds-to>
			<responds-to command="display scanwindow">
				<cocoa method="handleDisplayScanWindowScriptCommand:" />
			</responds-to>            
			<responds-to command="display preferences">
				<cocoa method="handleDisplayPreferencesScriptCommand:" />
			</responds-to>
		</class-extension>
		-->
		<class name="scan" code="scan" description="A scan in Sophos Anti-Virus, defining which files will be inspected for threats and how.">
			<cocoa class="ClientScan"/>
			<element type="scan item">
				<cocoa key="scanItems"/>
			</element>
			<element type="exclusion">
				<cocoa key="scriptExclusions"/>
			</element>
			<property name="name" code="pnam" description="The name of the scan." type="text">
				<cocoa key="name"/>
			</property>
			<property name="scanning archives" code="arch" description="Whether to scan the content of compressed files." type="boolean">
				<cocoa key="scanningArchives"/>
			</property>
			<property name="infected folder" code="ifld" description="Folder to which infected files should be moved." type="file">
				<cocoa key="infectedFolderPath"/>
			</property>
			<property name="cleaning up threats" code="clen" description="Whether clean up will be performed on infected files." type="boolean">
				<cocoa key="disinfecting"/>
			</property>
			<property name="action on infected files" code="iact" description="Action to take if an infected file is not cleaned up." type="file action">
				<cocoa key="scriptingInfectedFileAction"/>
			</property>
			<property name="running" code="runn" description="Whether the scan is currently being run." type="boolean" access="r">
				<cocoa key="running"/>
			</property>
			<property name="last scanned date" code="last" description="The date and time at which the scan was last run." type="date" access="r">
				<cocoa key="lastScannedCalendarDate"/>
			</property>
			<property name="log file" code="logf" description="The log file from the most recent sweep of the scan." type="file" access="r">
				<cocoa key="lastLog"/>
			</property>
			<property name="status" code="ssta" description="Current status of the scan." type="scan status" access="r">
				<cocoa key="scriptStatus"/>
			</property>
			<property name="full scan mode" code="full" description="It is not recommended to set this option." type="boolean">
				<cocoa key="fullSweep"/>
			</property>
			<element type="scan item">
				<cocoa key="scanItems" />
			</element>
			<element type="exclusion">
				<cocoa key="scriptExclusions" />
			</element>
			<responds-to command="sweep" name="sweep">
				<cocoa method="handleSweepScriptCommand:" />
			</responds-to>
			<responds-to command="stop" name="stop">
				<cocoa method="handleStopScriptCommand:" />
			</responds-to>
		</class>
		<class name="scan item" code="scit" description="A Finder item to be swept and whether it will be included when the scan is next swept.">
			<cocoa class="SUMScanItem"/>
			<property name="finder item" code="fndi" description="The file or folder to be scanned." type="file">
				<cocoa key="pathURL"/>
			</property>
			<property name="will be swept" code="iswp" description="Whether sweeping the scan will include this item." type="boolean">
				<cocoa key="enabled"/>
			</property>
		</class>
		<class name="exclusion" code="excl" description="A rule to determine which files will not be included when the scan is next swept.">
			<cocoa class="SUMExclusionItem"/>
			<property name="rule" code="exrl" description="The rule with which to exclude files." type="text">
				<cocoa key="path"/>
			</property>
		</class>
		<class name="Quarantine Manager Controller" code="SQuM" description="The quarantine manager controller of the Sophos Anti-Virus for Mac OS X product.">
			<cocoa class="SUMQuarantineManagerScriptController"/>
			<element type="quarantine item">
				<cocoa key="threats"/>
			</element>
			<property name="cleaning" code="clni" description="Whether the the quarantine manager is currently cleaning something up or not." type="boolean" access="r">
				<cocoa key="cleaning"/>
			</property>
			<property name="threat count" code="notr" description="How many threats are currently in the Quarantine Manager." type="integer" access="r">
				<cocoa key="countOfThreats"/>
			</property>
		</class>
		<class name="quarantine item" code="QMIT" description="A threat detected by Sophos Anti-Virus, defining what was detected and if it can be cleaned up or not.">
			<cocoa class="SUMQuarantineItem"/>
			<property name="filename" code="ThrF" description="The file or bundle where the threat was detected." type="text" access="r">
				<cocoa key="filename"/>
			</property>
			<property name="location" code="Path" description="The location of the primary component of the detected threat." type="text" access="r">
				<cocoa key="primaryComponentPath"/>
			</property>
			<property name="available action" code="Actn" description="The action that can be used to deal with the detected threat." type="text" access="r">
				<cocoa key="actionAvailable"/>
			</property>
			<responds-to name="cleanup" command="cleanup">
				<cocoa method="handleCleanupScriptCommand:"/>
			</responds-to>
			<responds-to name="remove from list" command="remove from list">
				<cocoa method="handleRemoveFromListScriptCommand:"/>
			</responds-to>
		</class>
		<class name="Component" code="SUMC" description="A component of the Sophos Anti-Virus for Mac OS X product.">
			<cocoa class="SUMComponentAdaptor"/>
			<property name="active" code="OAAc" description="Whether this component is active on this computer or not." type="boolean" access="r">
				<cocoa key="active"/>
			</property>
			<responds-to name="restore defaults" command="restore defaults">
				<cocoa method="handleRestoreDefaultsCommand:"/>
			</responds-to>
		</class>
		<command name="scan local volumes" code="SAVxSLVs" description="Scan local volumes">
			<cocoa class="SUMPerformLocalVolumeScanScriptCommand"/>
		</command>
		<command name="scan finder items" code="SAVxSFIs" description="Use the &apos;Finder Item Scan&apos; configuration to sweep Finder items.">
			<cocoa class="SUMScanFinderItemsScriptCommand"/>
			<direct-parameter description="The Finder item(s) to be scanned.">
				<type type="file" list="yes"/>
			</direct-parameter>
		</command>
		<command name="display about panel" code="SAVxabot" description="Show the application&apos;s about panel.">
			<cocoa class="SUMDisplayAboutPanelScriptCommand"/>
		</command>
		<command name="display scanwindow" code="SAVxswnd" description="Show the application&apos;s scan list window.">
			<cocoa class="SUMDisplayScanWindowScriptCommand"/>
		</command>        
		<command name="display preferences" code="SAVxpref" description="Show the application preferences.">
			<cocoa class="SUMDisplayPreferencesScriptCommand"/>
		</command>
		<command name="display quarantine manager" code="SAVxsaqm" description="Show the application&apos;s quarantine manager.">
			<cocoa class="SUMDisplayQuarantineManagerScriptCommand"/>
		</command>
		<command name="sweep" code="SAVxswep" description="Look for threats in a named scan.">
			<direct-parameter description="The scan to run." type="scan"/>
		</command>
		<command name="stop" code="SAVxstop" description="Stop a named scan from looking for threats.">
			<direct-parameter description="The scan to stop." type="scan"/>
		</command>
		<command name="cleanup" code="SAVxclen" description="Cleanup a specific threat.">
			<direct-parameter description="The threat to cleanup." type="quarantine item"/>
		</command>
		<command name="remove from list" code="SAVxremo" description="Remove a specific threat from the list of threats.">
			<direct-parameter description="The threat to remove." type="quarantine item"/>
		</command>
		<command name="restore defaults" code="SAVxResD" description="Restore the defaults of the component specified.">
			<direct-parameter description="The component which should have its factory default settings restored." type="Component"/>
		</command>
	</suite>
</dictionary>
